#ifndef _DEV_CONFIG_H_
#define _DEV_CONFIG_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
// #include "esp_system.h"
#include "driver/gpio.h"

/**
 * data
**/
#define UBYTE   uint8_t
#define UWORD   uint16_t
#define UDOUBLE uint32_t


#define PARALLEL_LINES 16
/**
 * e-Paper GPIO
**/

// #define PIN_NUM_MISO 2
#define EPD_SCK_PIN  GPIO_NUM_13
#define EPD_MOSI_PIN GPIO_NUM_14
#define EPD_CS_PIN   GPIO_NUM_15
#define EPD_RST_PIN  GPIO_NUM_26
#define EPD_DC_PIN   GPIO_NUM_27
#define EPD_BUSY_PIN GPIO_NUM_25

#define GPIO_PIN_SET   1
#define GPIO_PIN_RESET 0

/**
 * GPIO read and write
**/
#define DEV_Digital_Write(_pin, _value) gpio_set_level(_pin, _value)
#define DEV_Digital_Read(_pin) gpio_get_level(_pin)
/**
 * delay x ms
**/
#define DEV_Delay_ms(__xms) vTaskDelay(__xms / portTICK_RATE_MS)

void DEV_SPI_WriteByte(UBYTE data);
void DEV_SPI_Write_nByte(UBYTE *pData, UDOUBLE len);

int DEV_Module_Init(void);
void DEV_Module_Exit(void);
int GPIO_Init(void);

#endif
